/* Copyright (C) 2007 Free Software Foundation, Inc. 
 * See the copyright notice in the file /usr/LICENSE.
 * Created by flyan on 2020/6/1.
 * QQ: 1341662010
 * QQ-Group:909830414
 * gitee: https://gitee.com/flyanh/
 *
 * 求 1+2+...+n ，要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句（A?B:C）。
 *
 * 示例 1：
 *
 * 输入: n = 3
 * 输出: 6
 * 示例 2：
 *
 * 输入: n = 9
 * 输出: 45
 *  
 *
 * 限制：
 *
 * 1 <= n <= 10000
 */
#include <iostream>
#include <sstream>
#include <cstring>
#include <cassert>
#include <vector>

using namespace std;

class Solution {
public:
    static int sumNums(int n) {
        /* 这里相当于：
         *  if(n > 0) {
         *      n += sumNums(n - 1)
         *  }
         *  return n;
         * 垃圾 IDE 觉得这可能无限递归，真不够智能
         */
        n > 0 && (n += sumNums(n - 1));
        return n;
    }
};

int main(void) {

    int ans = Solution::sumNums(9);
    cout << "ans: " << ans << endl;

    exit(0);
}

